A server device is mounted with an SSD (Solid-State Drive) and an HDD (Hard Disk Drive) as a storage device. The HDD is a storage device that rotates at high speed a disk-shaped disk coated with a magnetic substance and moves a magnetic head, and thus reads out information stored in the disk. The SSD is a storage device that uses a NAND-type flash memory as a storage medium. The server device has a patrol-read function that performs a normality diagnosis of a medium by reading each memory such as the SSD and the HDD.
The SSD has a plurality of memory blocks (blocks). Each memory block has a plurality of pages. In addition, each page has a plurality of memory cells. A control unit that controls processing of the normality diagnosis diagnoses normality in units of memory cells. The control unit specifies the head address of a memory cell that is a diagnosis target. The SSD reads out data from the memory cell that includes the specified address, and sends back the data to the control unit. When the control unit receives the data of the memory cell that includes the specified address from the SSD, the control unit determines that the memory cell is normal. The control unit sequentially specifies the head addresses of memory cells on which the normality diagnosis has not yet been performed, and the normality diagnosis is also performed on the remaining memory cells. When the SSD cannot read data from the memory cell that includes the specified address, the SSD notifies the control unit that the memory cell is faulty.
In the storage device that uses a NAND-type flash memory such as the SSD, a failure in units of blocks occurs due to aging deterioration, etc. A failure due to deterioration is anticipated in advance. Therefore, the medium such as the SSD has a backup block. The control unit regards a block in which a failure has occurred as a faulty block, and replaces the faulty block with the backup block. The SSD maintains the initial capacity of the medium by replacing the capacity of the faulty block with that of the backup block.
In order to replace the faulty block with the backup block, the control unit recovers data stored in the faulty block, and then arranges the recovered data in the backup block. Examples of methods for recovering data include an ECC (Error-Correcting Code) and a RAID (Redundant Array of Inexpensive Discs). Such a restorable error is referred to as a retryable error.
A technique for setting NAND memory blocks as one group, and creating parity data and writing it as nth data every time n-1th data is written is known as a technique for data restoration in the SSD. (See, for example, Patent document 1)
A technique for diagnosing the address that is an access target and executing sequential read on the basis of a request from outside is known as a technique related to patrol read. (See, for example, Patent document 2)
Patent Document 1: Japanese Laid-open Patent Publication No. 2010-152551
Patent Document 2: Japanese Laid-open Patent Publication No. 2012-247817